iT邦幫忙

2022 iThome 鐵人賽

DAY 16
0
自我挑戰組

菜鳥的前端學習筆記系列 第 16

DAY16 - 物件

  • 分享至 

  • xImage
  •  

前言

介紹了幾天陣列後,今天要來認識物件囉!


物件Object

物件是一種key-value pair的資料結構,什麼是key-value pair呢?key-value pair稱做物件的屬性,屬性的值(value)可以是任何型態的資料,而屬性的名稱(key)則會是一個字串型態。直接舉個例子來看看吧!

const identity = {
  name: 'Mike',
  birthday: '1992, 10, 10',
  age: 30,
  job: ['front-end engineer', 'novelist'],
	bmi: {
	  height: 170,
		weight: 68
  }
}

從舉例中主要可以了解到:

  1. 物件中可以包含各種不同型態的值。
  2. 物件裡的每一個項目會用,分隔,而項目裡面可以從:切割出來看,冒號左手邊的是該項的key,而右手邊的是該項的value(如name:'mike',name是key,mike是value)。

此外,假如我們擁有眾多變數要進行宣告時,物件的寫法可以幫助我們有效管理眾多變數名稱,並且讓整體看起來更為簡潔清晰。


操作方法

當想存取物件的值時,有兩種方式可以選用:

// 點記法
identity.name  // 'Mike'
// 括號記法
identity['name']  // 'Mike'

上面兩種方式都可以得到物件中的值,而若想為物件寫入新的屬性也可以直接運用賦值:

// 點記法
identity.single = true
// 括號記法
identity['single'] = true

假如我們想要取出特定規範的資料,像是取出所有的key、取出所有的value或取出所有的pair,其各自有對應的方法可以進行操作:

console.log(Object.keys(identity)) // 輸出所有identity裡面的key
console.log(Object.values(identity)) // 輸出所有identity裡面的value
console.log(Object.entries(identity)) // 輸出所有key-value pair

Object.keysObject.values會回傳陣列,而Object.entries則會回傳雙層陣列(內層陣列第一項是key,第二項是value)。

最後,如果我們想要列舉出物件裡面所有的內容時,可以使用物件專用的迴圈for-in

for (let key in identity) {
	console.log(identity[key]) // 將會依序輸出identity內每個key的值
}

需要特別注意的地方是舉例中for-in內看到的key是一個變數,並不是key-value pair的key,如果怕搞混可以使用其他名稱,另外,當使用變數來物件中的值時,就一定要使用括號記法,如果使用點記法程式會跑出找不到值的錯誤哦。


上一篇
DAY15 - 陣列常用語法Part2
下一篇
DAY17 - 函式
系列文
菜鳥的前端學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言